using System;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("HeroSwapSpell")]
	public class HeroSwapSpell : Spell
	{
		public Spell m_OldHeroFX => method_3<Spell>("m_OldHeroFX");

		public Spell m_NewHeroFX => method_3<Spell>("m_NewHeroFX");

		public Spell m_OldHeroFX_long => method_3<Spell>("m_OldHeroFX_long");

		public Spell m_NewHeroFX_long => method_3<Spell>("m_NewHeroFX_long");

		public float m_FinishDelay => method_2<float>("m_FinishDelay");

		public bool removeOldStats => method_2<bool>("removeOldStats");

		public Card m_oldHeroCard => method_3<Card>("m_oldHeroCard");

		public Card m_newHeroCard => method_3<Card>("m_newHeroCard");

		public Spell m_OldHeroFXToUse => method_3<Spell>("m_OldHeroFXToUse");

		public Spell m_NewHeroFXToUse => method_3<Spell>("m_NewHeroFXToUse");

		public HeroSwapSpell(IntPtr address, string className)
			: base(address, className)
		{
		}

		public HeroSwapSpell(IntPtr address)
			: this(address, "HeroSwapSpell")
		{
		}

		public new bool AddPowerTargets()
		{
			return method_11<bool>("AddPowerTargets", Array.Empty<object>());
		}

		public new void OnAction(SpellStateType prevStateType)
		{
			method_8("OnAction", prevStateType);
		}

		public void CustomizeFXProcess(Actor heroActor)
		{
			method_8("CustomizeFXProcess", heroActor);
		}

		public PowerTask FindFullEntityTask()
		{
			return method_14<PowerTask>("FindFullEntityTask", Array.Empty<object>());
		}

		public void Finish()
		{
			method_8("Finish");
		}
	}
}
